package com.youlemall.manager.controller;

import com.alibaba.dubbo.config.annotation.Reference;
import com.youlemall.common.pojo.PageResult;
import com.youlemall.pojo.Brand;
import com.youlemall.service.BrandService;
import org.springframework.web.bind.annotation.*;


import java.util.List;
import java.util.Map;

/**
 * 品牌类控制器
 *  @Author: kevin
 *  @Date: 2019/7/12 0:10
 *
 */

@RestController
@RequestMapping("/brand")
public class BrandController {

	@Reference(retries = 10000)
	private BrandService brandService;


	/**
	 * 查询所有并分类
	 * @param page 当前页数
	 * @param rows 页大小（设置默认值为10）
	 * @return 分页工具类
	 */
	@GetMapping("/findByPage")
	public PageResult findByPage(Integer page,
								 @RequestParam(defaultValue = "10") Integer rows,Brand brand){
		return brandService.findByPage(brand,page,rows);
	}

	/**
	 * 品牌对象保存
	 * @param brand 传入品牌对象
	 * @return 返回布尔
	 */
	@PostMapping("/save")
	public Boolean saveBrand(@RequestBody Brand brand){
		try {
			brandService.save(brand);
			return true;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return false;
	}

	/**
	 * 品牌对象修改
	 * @param brand 传入品牌对象
	 * @return 返回布尔
	 */
	@PostMapping("/update")
	public Boolean updateBrand(@RequestBody Brand brand){
		try {
			brandService.update(brand);
			return true;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return false;
	}

	/**
	 * 删除品牌
	 * @param ids 要删除的id数组
	 * @return 布尔
	 */
	@GetMapping("/delete")
	public Boolean deleteBrand(Long[] ids){
		try {
			brandService.deleteAll(ids);
			return true;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return false;
	}

	/**
	 * 品牌选择菜单查找品牌
	 * @return
	 */
	@GetMapping("/findBrandList")
	public List<Map<String,Object>> findBrandList(){
		return brandService.findAll();
	}


}
